package com.czl.base.data.bean

import android.os.Build
import android.os.Parcel
import android.os.Parcelable
import android.text.TextUtils
import androidx.databinding.BaseObservable
import androidx.databinding.Bindable
import com.czl.base.BR
import com.google.gson.annotations.SerializedName
import com.luck.picture.lib.entity.LocalMedia
import java.io.Serializable
import java.util.*
import com.contrarywind.interfaces.IPickerViewData

/**
 * @author Alwyn
 * @Date 2020/10/15
 * @Description
 */
data class UserBean(
    @SerializedName("admin")
    val admin: Boolean,
    @SerializedName("chapterTops")
    val chapterTops: List<Any>,
    @SerializedName("coinCount")
    val coinCount: Int,
    @SerializedName("collectIds")
    val collectIds: List<Any>,
    @SerializedName("email")
    val email: String,
    @SerializedName("icon")
    val icon: String,
    @SerializedName("id")
    val id: Int,
    @SerializedName("nickname")
    val nickname: String,
    @SerializedName("password")
    val password: String,
    @SerializedName("publicName")
    val publicName: String,
    @SerializedName("token")
    val token: String,
    @SerializedName("type")
    val type: Int,
    @SerializedName("username")
    val username: String,

    @SerializedName("app_login_token")
    val appLoginToken: String,
    @SerializedName("expires_in")
    val expiresIn: Int,
    @SerializedName("login_user")
    val loginUser: LoginUser,
    val areaIds: List<Data>,
    @SerializedName("sipServerUrl")
    val sipServerUrl: String,
) {
    data class LoginUser(
        @SerializedName("loginToken")
        val loginToken: String,
        @SerializedName("id")
        val id: Int,
        @SerializedName("name")
        val name: String,
        @SerializedName("phone")
        val phone: String,
        @SerializedName("avatarUrl")
        val avatarUrl: String,
        @SerializedName("loginTime")
        val loginTime: Long,
        @SerializedName("loginOutFlag")
        val loginOutFlag: Int, //0,未注销    1,注销
        @SerializedName("initPwdFlag")
        val initPwdFlag: Int, //0未初始化密码  1，初始化过密码
    )

    data class Data(
        val areaId: String,
        val areaName: String,
    )
}

data class PageParams(
    val pageNum: String,
    val pageSize: String,
    val orderBy: String,
    val data: Data
) {
    data class Data(
        val areaId: String = "",
        val orderType: String = ""
    )
}

data class AssignParams(
    val note: String,
    val orderId: String,
    val userId: String,
    val userName: String
)

data class AssignBatchParams(
    val note: String,
    val orderId: List<String>,
    val userId: String,
    val userName: String
)

data class AuditParams(
    val remark: String,
    val idList: List<String>,
    val isOk: Boolean
)

data class TakeCarePageParams(
    val pageNum: String,
    val pageSize: String,
    val orderBy: String,
    val data: Data
) {
    data class Data(
        var deviceNo: String = "",
        var endTime: String = "",
        var handleUserName: String = "",
        var orderNo: String = "",
        var startTime: String = ""
    )
}

data class TakeCarePageAllParams(
    val pageNum: String,
    val pageSize: String,
    val orderBy: String,
    val data: TakeCareRecordFilterParams
)

data class TakeCareRecordFilterParams(
    var buildingId: String = "",
    var deviceNo: String = "",
    var floorId: String = "",
    var pointTypeId: String = ""
)


data class TakeCareRecordPageParams(
    val pageNum: String,
    val pageSize: String,
    val orderBy: String,
    val data: String
)

data class AreaInfo(
    val areaId: String,
    val areaName: String
) : Serializable

data class ReportOrderState(
    val state: String?,
    val star: Double?,
    val pinjia: String?,
    val stateContent: String?,
    val stateTime: String?,
    val statePs: String?,
    val imgs: ArrayList<LocalMedia>?
) : Serializable

data class UserInfo(
    @SerializedName("id")
    val id: Int?,
    @SerializedName("avatarUrl")
    val avatarUrl: String?,
    @SerializedName("faceUrl")
    val faceUrl: String?,
    @SerializedName("nickName")
    val nickName: String?,
    @SerializedName("name")
    val name: String?,
    @SerializedName("gender")
    val gender: Int,
    @SerializedName("phone")
    val phone: String?,
    @SerializedName("idCard")
    val idCard: String?,
    @SerializedName("birthday")
    val birthday: String?,
    @SerializedName("email")
    val email: String?,
)

data class WorkOrderPayBean(
    val appid: String,
    val cusid: String,
    val payinfo: String,
    val randomstr: String,
    val reqsn: String,
    val retcode: String,
    val sign: String,
    val trxid: String,
    val trxstatus: String
)

data class PayInfoBean(
    val data: WorkOrderPayBean,
    val code: Int,
    val msg: String
)

data class RoomBean(
    val houseId: String,
    val houseCode: String,
    val isHead: Boolean
)

data class PayDetail(
    val chargingId: String,
    val payNo: String,
    val orderId: String,
    val plateNumber: String,
    val plateColor: String,
    val chargeTotal: String,
    val discountAmount: String,
    val charge: String,
    val remark: String,
    val paid: String,
    val sealName: String,
    val inRecordId: String,
    val inTime: Date,
    val feesTime: String,
    val stopTime: String,
    val createTime: Date,
    val payTime: String,
) : Serializable

data class CarItem(
    val cardPrice: Float,
    val createTime: String,
    val remark: String,
    val vehicleBrand: String,
    val vehicleColor: String,
    val vehicleId: Int,
    val vehicleModel: String,
    val vehicleNo: String,
    val vehicleType: String,
    val vehicleUserId: Int,
    val houseId: String,
    val isCardExpired: Int,
    var status: Boolean,
    var cardFree: Boolean,
) : Serializable

data class ArticleBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Data(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
        @SerializedName("collect")
        val collect: Boolean,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Long,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Tag>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    ) {
        data class Tag(
            @SerializedName("name")
            val name: String,
            @SerializedName("url")
            val url: String
        )
    }
}

data class ImgRspBean(
    val name: String,
    val url: String
)

data class HomeBannerBean(
    @SerializedName("desc")
    val desc: String = "",
    @SerializedName("id")
    val id: Int,
    @SerializedName("imagePath")
    val imagePath: String = "",
    @SerializedName("isVisible")
    val isVisible: Int,
    @SerializedName("order")
    val order: Int,
    @SerializedName("title")
    val title: String = "",
    @SerializedName("type")
    val type: Int,
    @SerializedName("url")
    val url: String = ""
) : Serializable

data class HomeArticleBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    var datas: ArrayList<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) : Serializable {
    data class Data(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
//        @SerializedName("collect")
//        var collect: Boolean,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Long,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Tag>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    ) : BaseObservable(), Serializable {
        @Bindable
        var collect: Boolean = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.collect)
            }

        @Bindable
        var topFlag: Boolean = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.topFlag)
            }

        data class Tag(
            @SerializedName("name")
            val name: String,
            @SerializedName("url")
            val url: String
        ) : Serializable
    }
}

data class ProjectBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) : Serializable {
    data class Data(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
//        @SerializedName("collect")
//        var collect: Boolean,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Long,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Tag>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    ) : BaseObservable(), Serializable {
        @Bindable
        @SerializedName("collect")
        var collect: Boolean = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.collect)
            }

        data class Tag(
            @SerializedName("name")
            val name: String,
            @SerializedName("url")
            val url: String
        ) : Serializable
    }
}

data class SearchDataBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Data(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Long,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Tag>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    ) : BaseObservable() {
        @Bindable
        @SerializedName("collect")
        var collect: Boolean = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.collect)
            }

        data class Tag(
            @SerializedName("name")
            val name: String,
            @SerializedName("url")
            val url: String
        )
    }
}

data class SearchHotKeyBean(
    @SerializedName("id")
    val id: Int,
    @SerializedName("link")
    val link: String,
    @SerializedName("name")
    val name: String,
    @SerializedName("order")
    val order: Int,
    @SerializedName("visible")
    val visible: Int
) : Serializable

data class ProjectSortBean(
    @SerializedName("children")
    val children: List<Any>,
    @SerializedName("courseId")
    val courseId: Int,
    @SerializedName("id")
    val id: Int,
    @SerializedName("name")
    val name: String,
    @SerializedName("order")
    val order: Int,
    @SerializedName("parentChapterId")
    val parentChapterId: Int,
    @SerializedName("visible")
    val visible: Int
) : Serializable

data class ReverseCarRequestBean(
    @SerializedName("areaId")
    val areaId: String,
    @SerializedName("vehicleNo")
    val vehicleNo: String,
    @SerializedName("cardPrice")
    val cardPrice: Int = 0,
    @SerializedName("houseId")
    val houseId: Int = 0,
    @SerializedName("queryTime")
    val queryTime: String = "",
    @SerializedName("remark")
    val remark: String = "",
    @SerializedName("vehicleType")
    val vehicleType: String = ""
)

data class ReverseSearchBean(
    @SerializedName("dataItems")
    val dataItems: List<DataItem>,
    @SerializedName("message")
    val message: String,
    @SerializedName("resultCode")
    val resultCode: String
) : Serializable {
    data class DataItem(
        @SerializedName("areaName")
        val areaName: String,
        @SerializedName("carImgPath")
        val carImgPath: String,
        @SerializedName("carNo")
        val carNo: String,
        @SerializedName("carPlace")
        val carPlace: String,
        @SerializedName("layName")
        val layName: String
    ) : Serializable
}

data class UserScoreBean(
    @SerializedName("coinCount")
    val coinCount: Int,
    @SerializedName("rank")
    val rank: Int,
    @SerializedName("userId")
    val userId: Int,
    @SerializedName("username")
    val username: String
)

data class UserShareBean(
    @SerializedName("coinInfo")
    val coinInfo: CoinInfo,
    @SerializedName("shareArticles")
    val shareArticles: ShareArticles
) {
    data class CoinInfo(
        @SerializedName("coinCount")
        val coinCount: Int,
        @SerializedName("level")
        val level: Int,
        @SerializedName("rank")
        val rank: String,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("username")
        val username: String
    )

    data class ShareArticles(
        @SerializedName("curPage")
        val curPage: Int,
        @SerializedName("datas")
        val datas: List<Data>,
        @SerializedName("offset")
        val offset: Int,
        @SerializedName("over")
        val over: Boolean,
        @SerializedName("pageCount")
        val pageCount: Int,
        @SerializedName("size")
        val size: Int,
        @SerializedName("total")
        val total: Int
    ) {
        data class Data(
            @SerializedName("apkLink")
            val apkLink: String,
            @SerializedName("audit")
            val audit: Int,
            @SerializedName("author")
            val author: String,
            @SerializedName("canEdit")
            val canEdit: Boolean,
            @SerializedName("chapterId")
            val chapterId: Int,
            @SerializedName("chapterName")
            val chapterName: String,
            @SerializedName("collect")
            val collect: Boolean,
            @SerializedName("courseId")
            val courseId: Int,
            @SerializedName("desc")
            val desc: String,
            @SerializedName("descMd")
            val descMd: String,
            @SerializedName("envelopePic")
            val envelopePic: String,
            @SerializedName("fresh")
            val fresh: Boolean,
            @SerializedName("id")
            val id: Int,
            @SerializedName("link")
            val link: String,
            @SerializedName("niceDate")
            val niceDate: String,
            @SerializedName("niceShareDate")
            val niceShareDate: String,
            @SerializedName("origin")
            val origin: String,
            @SerializedName("prefix")
            val prefix: String,
            @SerializedName("projectLink")
            val projectLink: String,
            @SerializedName("publishTime")
            val publishTime: Long,
            @SerializedName("realSuperChapterId")
            val realSuperChapterId: Int,
            @SerializedName("selfVisible")
            val selfVisible: Int,
            @SerializedName("shareDate")
            val shareDate: Long,
            @SerializedName("shareUser")
            val shareUser: String,
            @SerializedName("superChapterId")
            val superChapterId: Int,
            @SerializedName("superChapterName")
            val superChapterName: String,
            @SerializedName("tags")
            val tags: List<Any>,
            @SerializedName("title")
            val title: String,
            @SerializedName("type")
            val type: Int,
            @SerializedName("userId")
            val userId: Int,
            @SerializedName("visible")
            val visible: Int,
            @SerializedName("zan")
            val zan: Int
        )
    }
}

data class UserScoreDetailBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Data(
        @SerializedName("coinCount")
        val coinCount: Int,
        @SerializedName("date")
        val date: Long,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("id")
        val id: Int,
        @SerializedName("reason")
        val reason: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("userName")
        val userName: String
    )
}

data class UserRankBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Data(
        @SerializedName("coinCount")
        val coinCount: Int,
        @SerializedName("level")
        val level: Int,
        @SerializedName("rank")
        val rank: String,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("username")
        val username: String
    )
}

data class PayRecordListBean(
    val records: List<Record>,
    val total: Int,
    val size: Int,
    val current: Int,
    val pages: Int,
) : Serializable {
    data class Record(
        val orderNo: String,
        val bizType: String,
        val payResult: String,
        val amount: String,
        val payType: String,
        val payTime: Date,
        val carNo: String,
    ) : Serializable
}

data class IntegralBean(
    val records: List<RecordBean>,
    val orders: List<OrderBean>,
    val countId: String,
    val current: Int,
    val maxLimit: Int,
    val optimizeCountSql: Boolean,
    val pages: Int,
    val searchCount: Boolean,
    val size: Int,
    val total: Int
)

data class OrderBean(
    val asc: Boolean,
    val column: String,
)

data class RecordBean(
    val areaNo: String,
    val createTime: String,
    val id: Int,
    val mobile: String,
    val name: String,
    val itemName: String,
    val ownerId: Int,
    val points: String,
    val pointsItemId: Int,
    val userType: Int
)

data class NoticeListBean(
    val countId: Any,
    val current: Int,
    val maxLimit: Any,
    val optimizeCountSql: Boolean,
    val orders: List<Any>,
    val pages: Int,
    val records: List<Data>,
    val searchCount: Boolean,
    val size: Int,
    val total: Int
) : Serializable {
    data class Data(
        val areaNo: String,
        val content: String,
        val id: String,
        val isRead: Int,
        val jumpLink: String,
        val readTime: Date,
        val receiverId: String,
        val receiverName: String,
        val receiverType: String,
        val sendTime: Date,
        val title: String,
        val type: String,
    )
}

data class ReportListBean(
    val countId: Any,
    val current: Int,
    val maxLimit: Any,
    val optimizeCountSql: Boolean,
    val orders: List<Any>,
    val pages: Int,
    val records: List<Data>,
    val searchCount: Boolean,
    val size: Int,
    val total: Int
) : Serializable {
    data class Data(
        val createTime: Date,
        val description: String,
        val no: String,
        val status: String
    )
}

data class ScoreListBean(
    val countId: Any,
    val current: Int,
    val maxLimit: Any,
    val optimizeCountSql: Boolean,
    val orders: List<Any>,
    val pages: Int,
    val records: List<Data>,
    val searchCount: Boolean,
    val size: Int,
    val total: Int
) : Serializable {
    data class Data(
        val areaNo: String,
        val content: String,
        val evaluatedId: Int,
        val evaluatedName: String,
        val evaluatorAvatar: String,
        val evaluatorId: Int,
        val evaluatorName: String,
        val evaluatorTime: String,
        val id: Int,
        val isReply: Int,
        val replyContent: String,
        val replyTime: String,
        val score: Int
    )
}


data class RepairBean(
    val createTime: Date,
    val description: String,
    val no: String,
    val status: String
)

data class AddRecordBean(
    val applyStatus: Int,
    val areaId: String,
    val createBy: String,
    val createTime: String,
    val gender: Int,
    val headUserId: Int,
    val houseId: String,
    val id: String,
    val idCard: String,
    val idCardBackPhotoUrl: String,
    val idCardPhotoUrl: String,
    val name: String,
    val personType: Int,
    val phone: String,
    val remark: String,
    val updateBy: String,
    val updateTime: Any
)

data class PeopleManagerBean(
    val areaId: String,
    val checkInTime: Date,
    val createTime: Date,
    val gender: Int,
    val houseId: String,
    val houseName: String,
    val houseNo: String,
    val id: String,
    val idCard: String,
    val isHead: String,
    val ownerId: String,
    val ownerName: String,
    val ownerPhone: String,
    val personType: Int,
    val updateTime: Date
)

data class UserDetailBean(
    val areaId: String,
    val headUserId: String,
    val gender: Int,
    val houseName: String,
    val houseCode: String,
    val houseId: String,
    val id: String,
    val idCard: String,
    val facePhotoUrl: String,
    val idCardBackPhotoUrl: String,
    val idCardPhotoUrl: String,
    val name: String,
    val personType: Int,
    val applyStatus: Int,
    val phone: String,
    val remark: String,
)

data class RepairListBean(
    val models: List<RepairBean>,
    val pageIndex: Int,
    val pageSize: Int,
    val pages: Int,
    val sum: Int
) : Serializable


data class RecordDetailBean(
    val amount: String,
    val bizType: String,
    val carNo: String,
    val orderNo: String,
    val payResult: String,
    val payTime: Date,
    val payType: String,
    val validPeriod: String,
    val payInfo: String,
) : Serializable

data class PayResultBean(
    val status: Int,
    val msg: String
) : Serializable

data class MonthCardListBean(
    val endRow: Int,
    val hasNextPage: Boolean,
    val hasPreviousPage: Boolean,
    val isFirstPage: Boolean,
    val isLastPage: Boolean,
    val list: List<Data>
) : Serializable {
    data class Data(
        val applyUserId: Int,
        val applyUserName: String,
        val applyUserPhone: String,
        val cardId: Int,
        val cardNo: String,
        val cardState: String,
        val cardType: String,
        val cardVehicleType: String,
        val createDateTime: String,
        val endDate: Date,
        val parkingSpaceId: Int,
        val parkingSpaceNo: String,
        val personId: String,
        val restDay: String,
        val startDate: Date,
        val vehicleId: Int,
        val vehicleNo: String,
        var freeCard: Boolean,
    ) : Serializable
}

data class MembersBean(
    var avatar: String,
    var delFlag: String,
    var deptId: String,
    var email: String,
    var nickName: String,
    var phonenumber: String,
    var remark: String,
    var sex: String,
    var status: String,
    var userId: String,
    var userName: String,
    var userType: String,
)
data class PushBean(
    val display_type: String,
    val extra: Extra,
    val msg_id: String
) : Serializable {
    data class Extra(
        val msgType: String
    )
}



data class PatrolOrderDetailBean(
    var workOrder: Order,
    var task: Task,
    var taskDetailList: List<TaskList>
) : Serializable {
    data class Order(
        var orderId: String,
        var orderNo: String,
        var orderTypeId: String,
        var orderTypeName: String,
        var orderDate: String,
        var orderName: String,
        var orderContent: String,
        var sendOrderType: Int,
        var orderState: Int,
        var isHasten: Boolean,
        var handleUserId: String,
        var handleUserName: String,
        var helpUserId: String,
        var helpUserName: String,
        var serviceTime: String,
        var finishTime: String,
        var createTime: String
    ) : Serializable

    data class Task(
        var checkPlanId: String,
        var checkTaskId: String,
        var taskNo: String,
        var startTime: String,
        var endTime: String,
        var taskState: String,
        var taskUserId: String,
        var taskUserName: String,
        var execUserId: String,
        var execUserName: String,
        var finishTime: String,
        var createTime: String,
    ) : Serializable

    data class TaskList(
        var proDeviceInfo: ProDeviceInfo,
        var standardList: List<StandardList>,
        var taskDetail: TaskDetail,
    ) : Serializable

    data class ProDeviceInfo(
        var buildingId: String,
        var buildingName: String,
        var buyDate: String,
        var checkPeriod: String,
        var contact: String,
        var createTime: String,
        var deviceBrand: String,
        var deviceId: String,
        var deviceModel: String,
        var deviceName: String,
        var deviceNo: String,
        var factoryNo: String,
        var floorName: String,
        var floorId: String,
        var location: String,
        var pointTypeName: String,
        var pointTypeId: String,
        var scrapDate: String,
        var supplier: String,
        var systemId: String,
        var systemName: String,
        var userId: String,
        var userName: String,
    )

    data class StandardList(
        var checkStandardDetailId: String,
        var checkStandardId: String,
        var checkTaskDetailId: String,
        var checkTaskDetailStandardId: String,
        var option1: String,
        var option2: String,
        var option3: String,
        var optionName: String,
        var remark: String,
        var selected: String,
    )

    data class TaskDetail(
        var checkTaskId: String,
        var checkTaskDetailId: String,
        var deviceId: String,
        var deviceName: String,
        var handleState: String,
        var handleUserId: String,
        var handleUserName: String,
        var handleTime: String,
        var pointTypeId: String,
    ) : Serializable

}

data class TakeCareBean(
    val pageNum: Int,
    val pageSize: Int,
    val size: Int,
    val total: Int,
    val list: List<TakeCareBean.Data>
) : Serializable {
    data class Data(
        var createTime: String,
        var handleUserId: Int,
        var handleUserName: String,
        var isHasten: Boolean,
        val orderContent: String,
        val orderDate: String,
        val orderId: Int,
        val orderName: String,
        val orderNo: String,
        val orderState: Int,
        val taskState: Int,
        val orderTypeId: Int,
        val orderTypeName: String,
        val sendOrderType: String
    ) : Serializable
}

data class PatrolBean(
    val pageNum: Int,
    val pageSize: Int,
    val size: Int,
    val total: Int,
    val list: List<Data>
) : Serializable {
    data class Data(
        var checkTaskId: String,
        var endTime: String,
        var exceptionNum: String,
        var execUserName: Boolean,
        val finishTime: String,
        val frequencyType: String,
        val num: String,
        val okNum: String,
        val orderId: String,
        val orderName: String,
        val orderNo: String,
        val orderState: String,
        val planName: String,
        val startTime: String,
        val taskNo: String,
        val taskState: String,
        val taskUserName: String,
        val undoNum: String

    ) : Serializable
}


data class TakeCareRecordBean(
    val pageNum: Int,
    val pageSize: Int,
    val size: Int,
    val total: Int,
    val list: List<TakeCareRecordBean.Data>
) : Serializable {
    data class Data(
        var createTime: String,
        var endTime: String,
        var execUserId: String,
        var execUserName: String,
        val orderName: String,
        val finishTime: String,
        val inspectPlanId: String,
        val inspectTaskId: String,
        val startTime: String,
        val taskNo: String,
        val orderId: String,
        val taskState: Int,
        val taskUserId: String,
        val taskUserName: String,
        val frequencyType:String
    ) : Serializable
}

data class TakeCareDispatchBean(
    val pageNum: Int,
    val pageSize: Int,
    val size: Int,
    val total: Int,
    val list: List<TakeCareDispatchBean.Data>
) : Serializable {
    data class Data(
        var frequencyType: String,
        var endTime: String,
        var execUserName: String,
        val orderId: String,
        val orderName: String,
        var orderNo: String,
        val orderState: Int,
        val planName: String,
        val finishTime: String,
        val inspectTaskId: String,
        val startTime: String,
        val taskNo: String,
        val taskState: Int,
        val taskUserName: String,
    ) : Serializable
}

data class SquareListBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) : Serializable {
    data class Data(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Long,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Any>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    ) : BaseObservable(), Serializable {
        @Bindable
        @SerializedName("collect")
        var collect: Boolean = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.collect)
            }
    }
}

data class SystemTreeBean(
    @SerializedName("children")
    val children: List<Children>,
    @SerializedName("courseId")
    val courseId: Int,
    @SerializedName("id")
    val id: Int,
    @SerializedName("name")
    val name: String,
    @SerializedName("order")
    val order: Int,
    @SerializedName("parentChapterId")
    val parentChapterId: Int,
    @SerializedName("userControlSetTop")
    val userControlSetTop: Boolean,
    @SerializedName("visible")
    val visible: Int
) {
    data class Children(
        @SerializedName("children")
        val children: List<Any>,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("id")
        val id: Int,
        @SerializedName("name")
        val name: String,
        @SerializedName("order")
        val order: Int,
        @SerializedName("parentChapterId")
        val parentChapterId: Int,
        @SerializedName("userControlSetTop")
        val userControlSetTop: Boolean,
        @SerializedName("visible")
        val visible: Int,
        @Transient
        var group: String
    )
}

data class NavigationBean(
    @SerializedName("articles")
    val articles: List<Article>,
    @SerializedName("cid")
    val cid: Int,
    @SerializedName("name")
    val name: String
) {
    data class Article(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
        @SerializedName("collect")
        val collect: Boolean,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Any,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Any>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    )
}

data class SystemDetailBean(
    @SerializedName("curPage")
    val curPage: Int,
    @SerializedName("datas")
    val datas: List<Data>,
    @SerializedName("offset")
    val offset: Int,
    @SerializedName("over")
    val over: Boolean,
    @SerializedName("pageCount")
    val pageCount: Int,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Data(
        @SerializedName("apkLink")
        val apkLink: String,
        @SerializedName("audit")
        val audit: Int,
        @SerializedName("author")
        val author: String,
        @SerializedName("canEdit")
        val canEdit: Boolean,
        @SerializedName("chapterId")
        val chapterId: Int,
        @SerializedName("chapterName")
        val chapterName: String,
        @SerializedName("courseId")
        val courseId: Int,
        @SerializedName("desc")
        val desc: String,
        @SerializedName("descMd")
        val descMd: String,
        @SerializedName("envelopePic")
        val envelopePic: String,
        @SerializedName("fresh")
        val fresh: Boolean,
        @SerializedName("id")
        val id: Int,
        @SerializedName("link")
        val link: String,
        @SerializedName("niceDate")
        val niceDate: String,
        @SerializedName("niceShareDate")
        val niceShareDate: String,
        @SerializedName("origin")
        val origin: String,
        @SerializedName("prefix")
        val prefix: String,
        @SerializedName("projectLink")
        val projectLink: String,
        @SerializedName("publishTime")
        val publishTime: Long,
        @SerializedName("realSuperChapterId")
        val realSuperChapterId: Int,
        @SerializedName("selfVisible")
        val selfVisible: Int,
        @SerializedName("shareDate")
        val shareDate: Long,
        @SerializedName("shareUser")
        val shareUser: String,
        @SerializedName("superChapterId")
        val superChapterId: Int,
        @SerializedName("superChapterName")
        val superChapterName: String,
        @SerializedName("tags")
        val tags: List<Any>,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("visible")
        val visible: Int,
        @SerializedName("zan")
        val zan: Int
    ) : BaseObservable() {
        @Bindable
        @SerializedName("collect")
        var collect: Boolean = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.collect)
            }
    }
}

data class ShareUserDetailBean(
    @SerializedName("coinInfo")
    val coinInfo: CoinInfo,
    @SerializedName("shareArticles")
    val shareArticles: ShareArticles
) {
    data class CoinInfo(
        @SerializedName("coinCount")
        val coinCount: Int,
        @SerializedName("level")
        val level: Int,
        @SerializedName("rank")
        val rank: String,
        @SerializedName("userId")
        val userId: Int,
        @SerializedName("username")
        val username: String
    )

    data class ShareArticles(
        @SerializedName("curPage")
        val curPage: Int,
        @SerializedName("datas")
        val datas: List<Data>,
        @SerializedName("offset")
        val offset: Int,
        @SerializedName("over")
        val over: Boolean,
        @SerializedName("pageCount")
        val pageCount: Int,
        @SerializedName("size")
        val size: Int,
        @SerializedName("total")
        val total: Int
    ) {
        data class Data(
            @SerializedName("apkLink")
            val apkLink: String,
            @SerializedName("audit")
            val audit: Int,
            @SerializedName("author")
            val author: String,
            @SerializedName("canEdit")
            val canEdit: Boolean,
            @SerializedName("chapterId")
            val chapterId: Int,
            @SerializedName("chapterName")
            val chapterName: String,
            @SerializedName("courseId")
            val courseId: Int,
            @SerializedName("desc")
            val desc: String,
            @SerializedName("descMd")
            val descMd: String,
            @SerializedName("envelopePic")
            val envelopePic: String,
            @SerializedName("fresh")
            val fresh: Boolean,
            @SerializedName("id")
            val id: Int,
            @SerializedName("link")
            val link: String,
            @SerializedName("niceDate")
            val niceDate: String,
            @SerializedName("niceShareDate")
            val niceShareDate: String,
            @SerializedName("origin")
            val origin: String,
            @SerializedName("prefix")
            val prefix: String,
            @SerializedName("projectLink")
            val projectLink: String,
            @SerializedName("publishTime")
            val publishTime: Long,
            @SerializedName("realSuperChapterId")
            val realSuperChapterId: Int,
            @SerializedName("selfVisible")
            val selfVisible: Int,
            @SerializedName("shareDate")
            val shareDate: Long,
            @SerializedName("shareUser")
            val shareUser: String,
            @SerializedName("superChapterId")
            val superChapterId: Int,
            @SerializedName("superChapterName")
            val superChapterName: String,
            @SerializedName("tags")
            val tags: List<Any>,
            @SerializedName("title")
            val title: String,
            @SerializedName("type")
            val type: Int,
            @SerializedName("userId")
            val userId: Int,
            @SerializedName("visible")
            val visible: Int,
            @SerializedName("zan")
            val zan: Int
        ) : BaseObservable() {
            @Bindable
            @SerializedName("collect")
            var collect: Boolean = false
                set(value) {
                    field = value
                    notifyPropertyChanged(BR.collect)
                }
        }
    }
}

class TodoBean() : Parcelable {
    var curPage = 0
    var offset = 0

    @SerializedName("over")
    var isOver = false
    var pageCount = 0
    var size = 0
    var total = 0
    var datas: List<Data> = arrayListOf()

    constructor(parcel: Parcel) : this() {
        curPage = parcel.readInt()
        offset = parcel.readInt()
        isOver = parcel.readByte() != 0.toByte()
        pageCount = parcel.readInt()
        size = parcel.readInt()
        total = parcel.readInt()
        datas = parcel.createTypedArrayList(Data.CREATOR)!!
    }

    class Data() : BaseObservable(), Parcelable {
        var completeDate: Long? = null
        var completeDateStr: String? = null
        var content: String? = null
        var date: Long = 0
        var dateStr: String? = null
        var id = 0
        var priority = 0
        var title: String? = null
        var type = 0
        var userId = 0

        @Bindable
        var dateExpired = false
            set(value) {
                field = value
                notifyPropertyChanged(BR.dateExpired)
            }

        @Bindable
        var status = 0
            set(status) {
                field = status
                notifyPropertyChanged(BR.status)
            }

        constructor(parcel: Parcel) : this() {
            completeDate = parcel.readLong()
            completeDateStr = parcel.readString()
            content = parcel.readString()
            date = parcel.readLong()
            dateStr = parcel.readString()
            id = parcel.readInt()
            priority = parcel.readInt()
            title = parcel.readString()
            type = parcel.readInt()
            userId = parcel.readInt()
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                dateExpired = parcel.readBoolean()
            } else {
                dateExpired = parcel.readInt() == 1
            }
            status = parcel.readInt()
        }


        override fun writeToParcel(parcel: Parcel, flags: Int) {
            parcel.writeLong(completeDate ?: 0)
            parcel.writeString(completeDateStr)
            parcel.writeString(content)
            parcel.writeLong(date)
            parcel.writeString(dateStr)
            parcel.writeInt(id)
            parcel.writeInt(priority)
            parcel.writeString(title)
            parcel.writeInt(type)
            parcel.writeInt(userId)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                parcel.writeBoolean(dateExpired)
            } else {
                parcel.writeInt(if (dateExpired) 1 else 0)
            }
            parcel.writeInt(status)
        }

        override fun describeContents(): Int {
            return 0
        }

        override fun equals(other: Any?): Boolean {
            if (this === other) return true
            if (javaClass != other?.javaClass) return false

            other as Data

            if (completeDate != other.completeDate) return false
            if (completeDateStr != other.completeDateStr) return false
            if (content != other.content) return false
            if (date != other.date) return false
            if (dateStr != other.dateStr) return false
            if (id != other.id) return false
            if (priority != other.priority) return false
            if (title != other.title) return false
            if (type != other.type) return false
            if (userId != other.userId) return false
            if (dateExpired != other.dateExpired) return false
            if (status != other.status) return false

            return true
        }

        override fun hashCode(): Int {
            var result = completeDate?.hashCode() ?: 0
            result = 31 * result + (completeDateStr?.hashCode() ?: 0)
            result = 31 * result + (content?.hashCode() ?: 0)
            result = 31 * result + date.hashCode()
            result = 31 * result + (dateStr?.hashCode() ?: 0)
            result = 31 * result + id
            result = 31 * result + priority
            result = 31 * result + (title?.hashCode() ?: 0)
            result = 31 * result + type
            result = 31 * result + userId
            result = 31 * result + dateExpired.hashCode()
            result = 31 * result + status
            return result
        }

        override fun toString(): String {
            return "Data(completeDate=$completeDate, completeDateStr=$completeDateStr, content=$content, date=$date, dateStr=$dateStr, id=$id, priority=$priority, title=$title, type=$type, userId=$userId, dateExpired=$dateExpired, status=$status)"
        }

        companion object CREATOR : Parcelable.Creator<Data> {
            override fun createFromParcel(parcel: Parcel): Data {
                return Data(parcel)
            }

            override fun newArray(size: Int): Array<Data?> {
                return arrayOfNulls(size)
            }
        }
    }

    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (javaClass != other?.javaClass) return false

        other as TodoBean

        if (curPage != other.curPage) return false
        if (offset != other.offset) return false
        if (isOver != other.isOver) return false
        if (pageCount != other.pageCount) return false
        if (size != other.size) return false
        if (total != other.total) return false
        if (datas != other.datas) return false

        return true
    }

    override fun hashCode(): Int {
        var result = curPage
        result = 31 * result + offset
        result = 31 * result + isOver.hashCode()
        result = 31 * result + pageCount
        result = 31 * result + size
        result = 31 * result + total
        result = 31 * result + (datas.hashCode())
        return result
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeInt(curPage)
        parcel.writeInt(offset)
        parcel.writeByte(if (isOver) 1 else 0)
        parcel.writeInt(pageCount)
        parcel.writeInt(size)
        parcel.writeInt(total)
        parcel.writeTypedList(datas)
    }

    override fun describeContents(): Int {
        return 0
    }

    override fun toString(): String {
        return "TodoBean(curPage=$curPage, offset=$offset, isOver=$isOver, pageCount=$pageCount, size=$size, total=$total, datas=$datas)"
    }

    companion object CREATOR : Parcelable.Creator<TodoBean> {
        override fun createFromParcel(parcel: Parcel): TodoBean {
            return TodoBean(parcel)
        }

        override fun newArray(size: Int): Array<TodoBean?> {
            return arrayOfNulls(size)
        }
    }
}

/**
 * 查询工单子类型
 */
data class OrderType(
    @SerializedName("deptId")
    val deptId: Int,
    @SerializedName("deptName")
    val deptName: String,
    @SerializedName("id")
    val id: Int,
    @SerializedName("name")
    val name: String,
    @SerializedName("userId")
    val userId: String,
    @SerializedName("userName")
    val userName: String
)
data class HouseKeeperListBean(
    @SerializedName("countId")
    val countId: String,
    @SerializedName("current")
    val current: Int,
    @SerializedName("maxLimit")
    val maxLimit: Int,
    @SerializedName("optimizeCountSql")
    val optimizeCountSql: Boolean,
    @SerializedName("orders")
    val orders: List<Order>,
    @SerializedName("pages")
    val pages: Int,
    @SerializedName("records")
    val records: List<Record>?,
    @SerializedName("searchCount")
    val searchCount: Boolean,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Order(
        @SerializedName("asc")
        val asc: Boolean,
        @SerializedName("column")
        val column: String
    )

    data class Record(
        @SerializedName("areaNo")
        val areaNo: String,
        @SerializedName("buildingNo")
        val buildingNo: String,
        @SerializedName("createBy")
        val createBy: String,
        @SerializedName("createTime")
        val createTime: String,
        @SerializedName("facePhoto")
        val facePhoto: String,
        @SerializedName("gender")
        val gender: Int,
        @SerializedName("id")
        val id: Int,
        @SerializedName("name")
        val name: String,
        @SerializedName("phone")
        val phone: String,
        @SerializedName("remark")
        val remark: String,
        @SerializedName("updateBy")
        val updateBy: String,
        @SerializedName("updateTime")
        val updateTime: String,
        @SerializedName("userId")
        val userId: Int
    )
}
data class HouseKeeperBean(
    val areaNo: String,
    val buildingNo: String,
    val createBy: String,
    val createTime: String,
    val facePhoto: String,
    val gender: Int,
    val score: Int,
    val id: String,
    val name: String,
    val phone: String,
    val remark: String,
    val updateBy: String,
    val updateTime: String,
    val userId: String
)
data class SubmitReportRequestBean(
    @SerializedName("areaNo")
    val areaNo: String,
    @SerializedName("description")
    val description: String,
    @SerializedName("files")
    val files: List<String>,
    @SerializedName("location")
    val location: String,
    @SerializedName("reportType")
    val reportType: String,
    @SerializedName("subTypeId")
    val subTypeId: Int
)
data class ComplaintSubmitRequestBean(
    @SerializedName("areaNo")
    val areaNo: String,
    @SerializedName("description")
    val description: String,
    @SerializedName("files")
    val files: List<String>,
    @SerializedName("subTypeId")
    val subTypeId: Int
)
data class ComplaintDetailBean(
    @SerializedName("description")
    val description: String,
    @SerializedName("files")
    val files: List<String>,
    @SerializedName("handlerId")
    val handlerId: Int,
    @SerializedName("handlerMobile")
    val handlerMobile: String,
    @SerializedName("handlerName")
    val handlerName: String,
    @SerializedName("no")
    val no: String,
    @SerializedName("operLogs")
    val operLogs: List<OperLog>,
    @SerializedName("reportTime")
    val reportTime: String,
    @SerializedName("reporterId")
    val reporterId: Int,
    @SerializedName("reporterMobile")
    val reporterMobile: String,
    @SerializedName("reporterName")
    val reporterName: String,
    @SerializedName("status")
    val status: Int
) {
    data class OperLog(
        @SerializedName("createTime")
        val createTime: String,
        @SerializedName("files")
        val files: List<String>,
        @SerializedName("memo")
        val memo: String,
        @SerializedName("score")
        val score: Double,
        @SerializedName("statusDescription")
        val statusDescription: String,
        @SerializedName("title")
        val title: String
    )
}
data class OrderDetailBean(
    @SerializedName("description")
    val description: String,
    @SerializedName("files")
    val files: List<String>,
    @SerializedName("handlerName")
    val handlerName: String,
    @SerializedName("helpers")
    val helpers: String,
    @SerializedName("location")
    val location: String,
    @SerializedName("no")
    val no: String,
    @SerializedName("operLogs")
    val operLogs: List<OperLog>,
    @SerializedName("repairerMobile")
    val repairerMobile: String,
    @SerializedName("repairerName")
    val repairerName: String,
    @SerializedName("reportTime")
    val reportTime: String,
    @SerializedName("reporterMobile")
    val reporterMobile: String,
    @SerializedName("reporterName")
    val reporterName: String,
    @SerializedName("serviceFee")
    val serviceFee: Double,
    @SerializedName("serviceTime")
    val serviceTime: Double,
    @SerializedName("serviceType")
    val serviceType: Int,
    @SerializedName("status")
    val status: Int,
    @SerializedName("subTypeId")
    val subTypeId: Int
) {
    data class OperLog(
        @SerializedName("createTime")
        val createTime: String,
        @SerializedName("files")
        val files: List<String>?,
        @SerializedName("memo")
        val memo: String,
        @SerializedName("score")
        val score: Double,
        @SerializedName("title")
        val title: String,
        @SerializedName("statusDescription")
        val statusDescription: String

    )
}

data class UploadImgEventBean(
    val fromIndex: Int,
    val uploadSuccess: Boolean,
    val fileList: ArrayList<LocalMedia>
)
data class CommunityBean(
    val title: String,
    val createTime: Date,
    val img: String,
    val tag: String
) : Serializable
data class CommunityRequestBean(
    @SerializedName("areaNo")
    val areaNo: String,
    @SerializedName("isAsc")
    val isAsc: String,
    @SerializedName("orderByColumn")
    val orderByColumn: String,
    @SerializedName("pageNum")
    val pageNum: Int,
    @SerializedName("pageSize")
    val pageSize: Int
): Serializable
data class CommunityResponseBean(
    @SerializedName("countId")
    val countId: String,
    @SerializedName("current")
    val current: Int,
    @SerializedName("maxLimit")
    val maxLimit: Int,
    @SerializedName("optimizeCountSql")
    val optimizeCountSql: Boolean,
    @SerializedName("orders")
    val orders: List<Order>,
    @SerializedName("pages")
    val pages: Int,
    @SerializedName("records")
    val records: List<Record>,
    @SerializedName("searchCount")
    val searchCount: Boolean,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Order(
        @SerializedName("asc")
        val asc: Boolean,
        @SerializedName("column")
        val column: String
    )

    data class Record(
        @SerializedName("activityTitle")
        val activityTitle: String,
        @SerializedName("coverUrl")
        val coverUrl: String,
        @SerializedName("createBy")
        val createBy: String,
        @SerializedName("createTime")
        var createTime: Date,
        @SerializedName("id")
        val id: Int,
        @SerializedName("isRead")
        val isRead: Int
    )
}
data class ActivityProfileListBean(
    @SerializedName("countId")
    val countId: String,
    @SerializedName("current")
    val current: Int,
    @SerializedName("maxLimit")
    val maxLimit: Int,
    @SerializedName("optimizeCountSql")
    val optimizeCountSql: Boolean,
    @SerializedName("orders")
    val orders: List<Order>,
    @SerializedName("pages")
    val pages: Int,
    @SerializedName("records")
    val records: List<Record>,
    @SerializedName("searchCount")
    val searchCount: Boolean,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Order(
        @SerializedName("asc")
        val asc: Boolean,
        @SerializedName("column")
        val column: String
    )

    data class Record(
        @SerializedName("activityTitle")
        val activityTitle: String,
        @SerializedName("coverUrl")
        val coverUrl: String,
        @SerializedName("endTime")
        val endTime: String,
        @SerializedName("id")
        val id: Int,
        @SerializedName("registrationTime")
        val registrationTime: String,
        @SerializedName("startTime")
        val startTime: String,
        @SerializedName("statusTag")
        val statusTag: String
    )
}
data class BulletinDetailBean(
    @SerializedName("areaNo")
    val areaNo: String,
    @SerializedName("content")
    val content: String,
    @SerializedName("createBy")
    val createBy: String,
    @SerializedName("createTime")
    val createTime: String,
    @SerializedName("id")
    val id: Int,
    @SerializedName("status")
    val status: Int,
    @SerializedName("title")
    val title: String,
    @SerializedName("type")
    val type: Int,
    @SerializedName("updateBy")
    val updateBy: String,
    @SerializedName("updateTime")
    val updateTime: String
)
data class ActivityDetailBean(
    @SerializedName("proActivity")
    val proActivity: ProActivity,
    @SerializedName("registrationCount")
    val registrationCount: Int
) {
    data class ProActivity(
        @SerializedName("activityTitle")
        val activityTitle: String,
        @SerializedName("activityType")
        val activityType: Int,
        @SerializedName("areaNo")
        val areaNo: String,
        @SerializedName("content")
        val content: String,
        @SerializedName("coverUrl")
        val coverUrl: String,
        @SerializedName("createBy")
        val createBy: String,
        @SerializedName("createTime")
        val createTime: String,
        @SerializedName("deadline")
        val deadline: String,
        @SerializedName("endTime")
        val endTime: String,
        @SerializedName("fee")
        val fee: Double,
        @SerializedName("id")
        val id: Int,
        @SerializedName("peopleNum")
        val peopleNum: Int,
        @SerializedName("place")
        val place: String,
        @SerializedName("startTime")
        val startTime: String,
        @SerializedName("status")
        val status: Int,
        @SerializedName("updateBy")
        val updateBy: String,
        @SerializedName("updateTime")
        val updateTime: String
    )
}
data class NoticeResponseBean(
    @SerializedName("countId")
    val countId: String,
    @SerializedName("current")
    val current: Int,
    @SerializedName("maxLimit")
    val maxLimit: Int,
    @SerializedName("optimizeCountSql")
    val optimizeCountSql: Boolean,
    @SerializedName("orders")
    val orders: List<Order>,
    @SerializedName("pages")
    val pages: Int,
    @SerializedName("records")
    var records: List<Record>,
    @SerializedName("searchCount")
    val searchCount: Boolean,
    @SerializedName("size")
    val size: Int,
    @SerializedName("total")
    val total: Int
) {
    data class Order(
        @SerializedName("asc")
        val asc: Boolean,
        @SerializedName("column")
        val column: String
    )

    data class Record(
        @SerializedName("createTime")
        val createTime: String,
        @SerializedName("id")
        val id: Int,
        @SerializedName("isRead")
        val isRead: Int,
        @SerializedName("title")
        val title: String,
        @SerializedName("type")
        val type: Int
    )
}

data class ApplyBean(
    val endRow: Int,
    val hasNextPage: Boolean,
    val hasPreviousPage: Boolean,
    val isFirstPage: Boolean,
    val isLastPage: Boolean,
    val list: List<Data>
) : Serializable {
    data class Data(
        val applyId: String? = "",
        val appointRecordId: String? = "",
        val approveRemark: String? = "",
        val approveStatus: String? = "",
        val cardNo: String? = "",
        val createTime: String? = "",
        val delFlag: String? = "",
        val endTime: String? = "",
        val guestCompany: String? = "",
        val guestFaceUrl: String? = "",
        val guestMobile: String? = "",
        val guestName: String? = "",
        val guestNo: String? = "",
        val guestPurpose: String? = "",
        val guestType: String? = "",
        val orderId: String? = "",
        val personId: String? = "",
        val qrCode: String? = "",
        val reservationTime: String? = "",
        val resource: String? = "",
        val startTime: String? = "",
        val updateTime: String? = "",
        val visitCompanyName: String? = "",
        val visitMobile: String? = "",
        val visitName: String? = "",
        val visitTime: String? = "",
        val visitUserId: String? = ""
    )
}

data class WorkOrderDetailBean(
    var workOrder: Order,
    var task: Task,
    var taskDetailList: List<TaskList>
) : Serializable {
    data class Order(
        var orderId: String,
        var orderNo: String,
        var orderTypeId: String,
        var orderTypeName: String,
        var orderDate: String,
        var orderName: String,
        var orderContent: String,
        var sendOrderType: Int,
        var orderState: Int,
        var isHasten: Boolean,
        var handleUserId: String,
        var handleUserName: String,
        var helpUserId: String,
        var helpUserName: String,
        var serviceTime: String,
        var finishTime: String,
        var createTime: String
    ) : Serializable

    data class Task(
        var inspectTaskId: String,
        var inspectPlanId: String,
        var taskNo: String,
        var startTime: String,
        var endTime: String,
        var taskState: String,
        var taskUserId: String,
        var taskUserName: String,
        var execUserId: String,
        var execUserName: String,
        var finishTime: String,
        var createTime: String,
    ) : Serializable

    data class TaskList(
        var inspectTaskId: String,
        var inspectTaskDetailId: String,
        var deviceId: String,
        var deviceName: String,
        var handleState: String,
        var handleImage: String,
        var handleUserId: String,
        var handleUserName: String,
        var handleTime: String,
        var handleDesc: String,
    ) : Serializable
}

data class WorkOrderBean(
    val endRow: Int,
    val hasNextPage: Boolean,
    val hasPreviousPage: Boolean,
    val isFirstPage: Boolean,
    val isLastPage: Boolean,
    val list: List<Data>
) : Serializable {
    data class Data(
        var createTime: String,
        var handleUserId: Int,
        var handleUserName: String,
        var isHasten: Boolean,
        val orderContent: String,
        val orderDate: String,
        val orderId: Int,
        val orderName: String,
        val orderNo: String,
        val orderState: Int,
        val orderTypeId: Int,
        val orderTypeName: String,
        val sendOrderType: String
    ) : Serializable
}

data class ApplyDetailBean(
    var approveStatus: String, //申请工单状态：（1已提交 2审核通过 3驳回 4t通过前撤销 5通过之后撤销 6已完成）
    var cardNo: String,//卡号
    var createTime: String,//申请时间
    var guestCompany: String,//访客单位名称
    var guestFaceUrl: String,//访客人脸照片
    var guestMobile: String,//访客电话
    var guestName: String, //	访客姓名
    var guestNo: String,//	来访编号,系统生成
    var guestPurpose: String,//来访目的
    var guestType: String,//访问类型：1访客拜访，2访客邀约
    var reservationTime: String,//预约时间
    var identity: String,
    var guestUserType: String,//访客人员类型
    var guestCardType: String,
    var guestVehicleNo: String,
    var visitCompanyName: String,//被访人公司名称
    var visitMobile: String,//被访人电话
    var visitName: String,//被访人姓名
    var visitTime: String,//到访时间
    var unitName: String,
    var buildName: String
)

data class ApplyParams(
    val applyId: String,
    val approveRemark: String,
    val approveStatus: String
)

data class ApplyResultBean(
    var approveStatus: String,//申请工单状态：（1已提交 2审核通过 3驳回 4t通过前撤销 5通过之后撤销 6已完成）
    var endTime: String,//预约结束时间
    var guestNo: String,//	来访编号
    var qrCode: String,//二维码卡号
    var qrCodeImage: String,//二维码图片
    var reservationTime: String,//预约时间
    var startTime: String//预约开始时间
)

data class BuildingtBean(
    var buildingId: String,//申请工单状态：（1已提交 2审核通过 3驳回 4t通过前撤销 5通过之后撤销 6已完成）
    var buildingName: String,//预约结束时间
    var buildingSort: String,//	来访编号
    var createTime: String,//二维码卡号
) : IPickerViewData {
    override fun getPickerViewText(): String =
        if (TextUtils.isEmpty(buildingName)) "空白" else buildingName
}

data class FloorBean(
    var buildingId: String,//申请工单状态：（1已提交 2审核通过 3驳回 4t通过前撤销 5通过之后撤销 6已完成）
    var floorId: String,//预约结束时间
    var createTime: String,//	来访编号
    var floorName: String,//二维码卡号
    var floorSort: String,//二维码图片
) : IPickerViewData {
    override fun getPickerViewText(): String = if (TextUtils.isEmpty(floorName)) "空白" else floorName
}

data class DeviceTypeBean(
    var createTime: String,//申请工单状态：（1已提交 2审核通过 3驳回 4t通过前撤销 5通过之后撤销 6已完成）
    var pointTypeId: String,//预约结束时间
    var pointTypeName: String,//	来访编号
    var systemId: String,//二维码卡号
    var systemName: String,//二维码图片
) : IPickerViewData {
    override fun getPickerViewText(): String =
        if (TextUtils.isEmpty(pointTypeName)) "空白" else pointTypeName
}

data class GuestApplyParam(
    var guestType: Int = 2,
    var guestUserType: String = "",
    var guestCardType: String = "",
    var guestVehicleNo: String = "",
    var startDateTime: String = "",
    var endDateTime: String = "",
    var guestName: String = "",
    var guestMobile: String = "",
    var identity: String = "",
    var guestPurpose: String? = "",
    var guestFaceUrl: String? = "",
    var visitName: String = "",
    var visitMobile: String = "",
    var buildName: String? = "",
    var unitName: String? = "",
    var areaId: String? ="",
)


data class ApplyPageParams(
    val pageNum: String,
    val pageSize: String,
    val orderBy: String,
    val data: Data
) {
    data class Data(
        var state: String = ""
    )
}
